package com.hmdp.utils;

import com.hmdp.dto.UserDTO;

/*
ThreadLocal用于将用户信息放到session里面的时候，为了判断用户登录，于是就设置
LoginInterceptor拦截器，拦截器里面主要判断ThreadLocal里面是否有值，有值就是用户登录
没有值就是用户没有登录
* 这里的三个方法分别是辅助从ThreadLocal里面获取用户信息，保存用户信息，移除用户信息
* */
/*
* 在ThreadLocal 里面放入的是UserDTO，是为了隐藏用户信息
* */
public class UserHolder {
    private static final ThreadLocal<UserDTO> tl = new ThreadLocal<>();
    /*将用户信息存入到ThreadLocal里面*/
    public static void saveUser(UserDTO user){
        tl.set(user);
    }
    /*从ThreadLocal里面获取用户信息*/
    public static UserDTO getUser(){
        return tl.get();
    }
    /*从ThreadLocal里面移除用户信息*/
    public static void removeUser(){
        tl.remove();
    }
}
